"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}; /*! ========================================================= * bootstrap-slider.js * * Maintainers: * Kyle Kemp * - Twitter: @seiyria * - Github: seiyria * Rohit Kalkur * - Twitter: @Rovolutionary * - Github: rovolution * * ========================================================= * * bootstrap-slider is released under the MIT License * Copyright (c) 2017 Kyle Kemp, Rohit Kalkur, and contributors * * Permission is hereby granted, free of charge, to any person * obtaining a copy of this software and associated documentation * files (the "Software"), to deal in the Software without * restriction, including without limitation the rights to use, * copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following * conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * * ========================================================= */var windowIsDefined=(typeof window==="undefined"?"undefined":_typeof(window))==="object";(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory)}else if((typeof module==="undefined"?"undefined":_typeof(module))==="object"&&module.exports){var jQuery;try{jQuery=require("jquery")}catch(err){jQuery=null} module.exports=factory(jQuery)}else if(window){window.Slider=factory(window.jQuery)}})(function($){var NAMESPACE_MAIN='slider';var NAMESPACE_ALTERNATE='bootstrapSlider';if(windowIsDefined&&!window.console){window.console={}} if(windowIsDefined&&!window.console.log){window.console.log=function(){}} if(windowIsDefined&&!window.console.warn){window.console.warn=function(){}} var Slider;(function($){'use strict';var slice=Array.prototype.slice;function noop(){} function defineBridget($){if(!$){return} function addOptionMethod(PluginClass){if(PluginClass.prototype.option){return} PluginClass.prototype.option=function(opts){if(!$.isPlainObject(opts)){return} this.options=$.extend(!0,this.options,opts)}} var logError=typeof console==='undefined'?noop:function(message){console.error(message)};function bridge(namespace,PluginClass){$.fn[namespace]=function(options){if(typeof options==='string'){var args=slice.call(arguments,1);for(var i=0,len=this.length;i1){return objects}else{return objects[0]}}}} $.bridget=function(namespace,PluginClass){addOptionMethod(PluginClass);bridge(namespace,PluginClass)};return $.bridget} defineBridget($)})($);(function($){var ErrorMsgs={formatInvalidInputErrorMsg:function formatInvalidInputErrorMsg(input){return"Invalid input value '"+input+"' passed in"},callingContextNotSliderInstance:"Calling context element does not have instance of Slider bound to it. Check your code to make sure the JQuery object returned from the call to the slider() initializer is calling the method"};var SliderScale={linear:{toValue:function toValue(percentage){var rawValue=percentage/100*(this.options.max-this.options.min);var shouldAdjustWithBase=!0;if(this.options.ticks_positions.length>0){var minv,maxv,minp,maxp=0;for(var i=1;ithis.options.max){return this.options.max}else{return value}},toPercentage:function toPercentage(value){if(this.options.max===this.options.min){return 0} if(this.options.ticks_positions.length>0){var minv,maxv,minp,maxp=0;for(var i=0;i0?this.options.ticks[i-1]:0;minp=i>0?this.options.ticks_positions[i-1]:0;maxv=this.options.ticks[i];maxp=this.options.ticks_positions[i];break}} if(i>0){var partialPercentage=(value-minv)/(maxv-minv);return minp+partialPercentage*(maxp-minp)}} return 100*(value-this.options.min)/(this.options.max-this.options.min)}},logarithmic:{toValue:function toValue(percentage){var min=this.options.min===0?0:Math.log(this.options.min);var max=Math.log(this.options.max);var value=Math.exp(min+(max-min)*percentage/100);if(Math.round(value)===this.options.max){return this.options.max} value=this.options.min+Math.round((value-this.options.min)/this.options.step)*this.options.step;if(valuethis.options.max){return this.options.max}else{return value}},toPercentage:function toPercentage(value){if(this.options.max===this.options.min){return 0}else{var max=Math.log(this.options.max);var min=this.options.min===0?0:Math.log(this.options.min);var v=value===0?0:Math.log(value);return 100*(v-min)/(max-min)}}}};Slider=function Slider(element,options){createNewSlider.call(this,element,options);return this};function createNewSlider(element,options){this._state={value:null,enabled:null,offset:null,size:null,percentage:null,inDrag:!1,over:!1};this.ticksCallbackMap={};this.handleCallbackMap={};if(typeof element==="string"){this.element=document.querySelector(element)}else if(element instanceof HTMLElement){this.element=element} options=options?options:{};var optionTypes=Object.keys(this.defaultOptions);for(var i=0;i0){for(var j=0;j0){this.ticksContainer=document.createElement('div');this.ticksContainer.className='slider-tick-container';for(i=0;i0){this.tickLabelContainer=document.createElement('div');this.tickLabelContainer.className='slider-tick-label-container';for(i=0;i0){this.options.max=Math.max.apply(Math,this.options.ticks);this.options.min=Math.min.apply(Math,this.options.ticks)} if(Array.isArray(this.options.value)){this.options.range=!0;this._state.value=this.options.value}else if(this.options.range){this._state.value=[this.options.value,this.options.max]}else{this._state.value=this.options.value} this.trackLow=sliderTrackLow||this.trackLow;this.trackSelection=sliderTrackSelection||this.trackSelection;this.trackHigh=sliderTrackHigh||this.trackHigh;if(this.options.selection==='none'){this._addClass(this.trackLow,'hide');this._addClass(this.trackSelection,'hide');this._addClass(this.trackHigh,'hide')}else if(this.options.selection==='after'||this.options.selection==='before'){this._removeClass(this.trackLow,'hide');this._removeClass(this.trackSelection,'hide');this._removeClass(this.trackHigh,'hide')} this.handle1=sliderMinHandle||this.handle1;this.handle2=sliderMaxHandle||this.handle2;if(updateSlider===!0){this._removeClass(this.handle1,'round triangle');this._removeClass(this.handle2,'round triangle hide');for(i=0;ithis.options.min){this._state.percentage=[this._toPercentage(this._state.value[0]),this._toPercentage(this._state.value[1]),this.options.step*100/(this.options.max-this.options.min)]}else{this._state.percentage=[0,0,100]} this._layout();var newValue=this.options.range?this._state.value:this._state.value[0];this._setDataVal(newValue);if(triggerSlideEvent===!0){this._trigger('slide',newValue)} if(oldValue!==newValue&&triggerChangeEvent===!0){this._trigger('change',{oldValue:oldValue,newValue:newValue})} return this},destroy:function destroy(){this._removeSliderEventHandlers();this.sliderElem.parentNode.removeChild(this.sliderElem);this.element.style.display="";this._cleanUpEventCallbacksMap();this.element.removeAttribute("data");if($){this._unbindJQueryEventHandlers();this.$element.removeData('slider')}},disable:function disable(){this._state.enabled=!1;this.handle1.removeAttribute("tabindex");this.handle2.removeAttribute("tabindex");this._addClass(this.sliderElem,'slider-disabled');this._trigger('slideDisabled');return this},enable:function enable(){this._state.enabled=!0;this.handle1.setAttribute("tabindex",0);this.handle2.setAttribute("tabindex",0);this._removeClass(this.sliderElem,'slider-disabled');this._trigger('slideEnabled');return this},toggle:function toggle(){if(this._state.enabled){this.disable()}else{this.enable()} return this},isEnabled:function isEnabled(){return this._state.enabled},on:function on(evt,callback){this._bindNonQueryEventHandler(evt,callback);return this},off:function off(evt,callback){if($){this.$element.off(evt,callback);this.$sliderElem.off(evt,callback)}else{this._unbindNonQueryEventHandler(evt,callback)}},getAttribute:function getAttribute(attribute){if(attribute){return this.options[attribute]}else{return this.options}},setAttribute:function setAttribute(attribute,value){this.options[attribute]=value;return this},refresh:function refresh(){this._removeSliderEventHandlers();createNewSlider.call(this,this.element,this.options);if($){$.data(this.element,'slider',this)} return this},relayout:function relayout(){this._resize();this._layout();return this},_removeSliderEventHandlers:function _removeSliderEventHandlers(){this.handle1.removeEventListener("keydown",this.handle1Keydown,!1);this.handle2.removeEventListener("keydown",this.handle2Keydown,!1);if(this.options.ticks_tooltip){var ticks=this.ticksContainer.getElementsByClassName('slider-tick');for(var i=0;i=0?index:this.attributes['aria-valuenow'].value;var hoverIndex=parseInt(idString,10);tempState.value[0]=hoverIndex;tempState.percentage[0]=reference.options.ticks_positions[hoverIndex];reference._setToolTipOnMouseOver(tempState);reference._showTooltip()};tick.addEventListener("mouseenter",enter,!1);return enter},addMouseLeave:function addMouseLeave(reference,tick){var leave=function leave(){reference._hideTooltip()};tick.addEventListener("mouseleave",leave,!1);return leave}}},_layout:function _layout(){var positionPercentages;if(this.options.reversed){positionPercentages=[100-this._state.percentage[0],this.options.range?100-this._state.percentage[1]:this._state.percentage[1]]}else{positionPercentages=[this._state.percentage[0],this._state.percentage[1]]} this.handle1.style[this.stylePos]=positionPercentages[0]+"%";this.handle1.setAttribute('aria-valuenow',this._state.value[0]);if(isNaN(this.options.formatter(this._state.value[0]))){this.handle1.setAttribute('aria-valuetext',this.options.formatter(this._state.value[0]))} this.handle2.style[this.stylePos]=positionPercentages[1]+"%";this.handle2.setAttribute('aria-valuenow',this._state.value[1]);if(isNaN(this.options.formatter(this._state.value[1]))){this.handle2.setAttribute('aria-valuetext',this.options.formatter(this._state.value[1]))} if(this.rangeHighlightElements.length>0&&Array.isArray(this.options.rangeHighlights)&&this.options.rangeHighlights.length>0){for(var _i=0;_i0){var styleSize=this.options.orientation==='vertical'?'height':'width';var styleMargin;if(this.options.orientation==='vertical'){styleMargin='marginTop'}else{if(this.options.rtl){styleMargin='marginRight'}else{styleMargin='marginLeft'}} var labelSize=this._state.size/(this.options.ticks.length-1);if(this.tickLabelContainer){var extraMargin=0;if(this.options.ticks_positions.length===0){if(this.options.orientation!=='vertical'){this.tickLabelContainer.style[styleMargin]=-labelSize/2+"px"} extraMargin=this.tickLabelContainer.offsetHeight}else{for(i=0;iextraMargin){extraMargin=this.tickLabelContainer.childNodes[i].offsetHeight}}} if(this.options.orientation==='horizontal'){this.sliderElem.style.marginBottom=extraMargin+"px"}} for(var i=0;i=positionPercentages[0]){this._addClass(this.ticks[i],'in-selection')}else if(this.options.selection==='before'&&percentage<=positionPercentages[0]){this._addClass(this.ticks[i],'in-selection')}}else if(percentage>=positionPercentages[0]&&percentage<=positionPercentages[1]){this._addClass(this.ticks[i],'in-selection')} if(this.tickLabels[i]){this.tickLabels[i].style[styleSize]=labelSize+"px";if(this.options.orientation!=='vertical'&&this.options.ticks_positions[i]!==undefined){this.tickLabels[i].style.position='absolute';this.tickLabels[i].style[this.stylePos]=percentage+"%";this.tickLabels[i].style[styleMargin]=-labelSize/2+'px'}else if(this.options.orientation==='vertical'){if(this.options.rtl){this.tickLabels[i].style.marginRight=this.sliderElem.offsetWidth+"px"}else{this.tickLabels[i].style.marginLeft=this.sliderElem.offsetWidth+"px"} this.tickLabelContainer.style[styleMargin]=this.sliderElem.offsetWidth/2*-1+'px'}}}} var formattedTooltipVal;if(this.options.range){formattedTooltipVal=this.options.formatter(this._state.value);this._setText(this.tooltipInner,formattedTooltipVal);this.tooltip.style[this.stylePos]=(positionPercentages[1]+positionPercentages[0])/2+"%";var innerTooltipMinText=this.options.formatter(this._state.value[0]);this._setText(this.tooltipInner_min,innerTooltipMinText);var innerTooltipMaxText=this.options.formatter(this._state.value[1]);this._setText(this.tooltipInner_max,innerTooltipMaxText);this.tooltip_min.style[this.stylePos]=positionPercentages[0]+"%";this.tooltip_max.style[this.stylePos]=positionPercentages[1]+"%"}else{formattedTooltipVal=this.options.formatter(this._state.value[0]);this._setText(this.tooltipInner,formattedTooltipVal);this.tooltip.style[this.stylePos]=positionPercentages[0]+"%"} if(this.options.orientation==='vertical'){this.trackLow.style.top='0';this.trackLow.style.height=Math.min(positionPercentages[0],positionPercentages[1])+'%';this.trackSelection.style.top=Math.min(positionPercentages[0],positionPercentages[1])+'%';this.trackSelection.style.height=Math.abs(positionPercentages[0]-positionPercentages[1])+'%';this.trackHigh.style.bottom='0';this.trackHigh.style.height=100-Math.min(positionPercentages[0],positionPercentages[1])-Math.abs(positionPercentages[0]-positionPercentages[1])+'%'}else{if(this.stylePos==='right'){this.trackLow.style.right='0'}else{this.trackLow.style.left='0'} this.trackLow.style.width=Math.min(positionPercentages[0],positionPercentages[1])+'%';if(this.stylePos==='right'){this.trackSelection.style.right=Math.min(positionPercentages[0],positionPercentages[1])+'%'}else{this.trackSelection.style.left=Math.min(positionPercentages[0],positionPercentages[1])+'%'} this.trackSelection.style.width=Math.abs(positionPercentages[0]-positionPercentages[1])+'%';if(this.stylePos==='right'){this.trackHigh.style.left='0'}else{this.trackHigh.style.right='0'} this.trackHigh.style.width=100-Math.min(positionPercentages[0],positionPercentages[1])-Math.abs(positionPercentages[0]-positionPercentages[1])+'%';var offset_min=this.tooltip_min.getBoundingClientRect();var offset_max=this.tooltip_max.getBoundingClientRect();if(this.options.tooltip_position==='bottom'){if(offset_min.right>offset_max.left){this._removeClass(this.tooltip_max,'bottom');this._addClass(this.tooltip_max,'top');this.tooltip_max.style.top='';this.tooltip_max.style.bottom=22+'px'}else{this._removeClass(this.tooltip_max,'top');this._addClass(this.tooltip_max,'bottom');this.tooltip_max.style.top=this.tooltip_min.style.top;this.tooltip_max.style.bottom=''}}else{if(offset_min.right>offset_max.left){this._removeClass(this.tooltip_max,'top');this._addClass(this.tooltip_max,'bottom');this.tooltip_max.style.top=18+'px'}else{this._removeClass(this.tooltip_max,'bottom');this._addClass(this.tooltip_max,'top');this.tooltip_max.style.top=this.tooltip_min.style.top}}}},_createHighlightRange:function _createHighlightRange(start,end){if(this._isHighlightRange(start,end)){if(start>end){return{'start':end,'size':start-end}} return{'start':start,'size':end-start}} return null},_isHighlightRange:function _isHighlightRange(start,end){if(0<=start&&start<=100&&0<=end&&end<=100){return!0}else{return!1}},_resize:function _resize(ev){this._state.offset=this._offset(this.sliderElem);this._state.size=this.sliderElem[this.sizePos];this._layout()},_removeProperty:function _removeProperty(element,prop){if(element.style.removeProperty){element.style.removeProperty(prop)}else{element.style.removeAttribute(prop)}},_mousedown:function _mousedown(ev){if(!this._state.enabled){return!1} this._state.offset=this._offset(this.sliderElem);this._state.size=this.sliderElem[this.sizePos];var percentage=this._getPercentage(ev);if(this.options.range){var diff1=Math.abs(this._state.percentage[0]-percentage);var diff2=Math.abs(this._state.percentage[1]-percentage);this._state.dragged=diff1=-5&&(yDiff>=15||yDiff<=-15)){this._mousedown(ev)}else if(yDiff<=5&&yDiff>=-5&&(xDiff>=15||xDiff<=-15)){this._mousedown(ev)}}},_adjustPercentageForRangeSliders:function _adjustPercentageForRangeSliders(percentage){if(this.options.range){var precision=this._getNumDigitsAfterDecimalPlace(percentage);precision=precision?precision-1:0;var percentageWithAdjustedPrecision=this._applyToFixedAndParseFloat(percentage,precision);if(this._state.dragged===0&&this._applyToFixedAndParseFloat(this._state.percentage[1],precision)percentageWithAdjustedPrecision){this._state.percentage[1]=this._state.percentage[0];this._state.dragged=0}else if(this._state.keyCtrl===0&&this._state.value[1]/this.options.max*100percentage){this._state.percentage[1]=this._state.percentage[0];this._state.keyCtrl=0;this.handle1.focus()}}},_mouseup:function _mouseup(){if(!this._state.enabled){return!1} if(this.touchCapable){document.removeEventListener("touchmove",this.mousemove,!1);document.removeEventListener("touchend",this.mouseup,!1)} document.removeEventListener("mousemove",this.mousemove,!1);document.removeEventListener("mouseup",this.mouseup,!1);this._state.inDrag=!1;if(this._state.over===!1){this._hideTooltip()} var val=this._calculateValue(!0);this._layout();this._setDataVal(val);this._trigger('slideStop',val);return!1},_calculateValue:function _calculateValue(snapToClosestTick){var val;if(this.options.range){val=[this.options.min,this.options.max];if(this._state.percentage[0]!==0){val[0]=this._toValue(this._state.percentage[0]);val[0]=this._applyPrecision(val[0])} if(this._state.percentage[1]!==100){val[1]=this._toValue(this._state.percentage[1]);val[1]=this._applyPrecision(val[1])}}else{val=this._toValue(this._state.percentage[0]);val=parseFloat(val);val=this._applyPrecision(val)} if(snapToClosestTick){var min=[val,Infinity];for(var i=0;i